home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #176 (1992)(Rhein-Sieg-Soft).zip / Franz PD Disk #176 (1992)(Rhein-Sieg-Soft).adf / ROMA-AMIGA / ROMA (.txt) < prev    next >
AmigaBASIC Source Code  |  1992-06-14  |  39KB  |  1,399 lines

  1. start:
  2. RANDOMIZE TIMER
  3. COLOR 1,0
  4. DIM klick%(256),unter(100)
  5. LINE (10,10)-(35,40),2,bf
  6. GET (10,10)-(35,40),klick%
  7. CLS
  8. LINE (0,0)-(160,100),1,b
  9. z=0
  10. FOR a=1 TO 94
  11.  ax=x2:ay=y2
  12.  READ x1,y1,x2,y2
  13.  IF x1+y1=0 THEN x1=ax:y1=ay
  14.  LINE (x1,y1)-(x2,y2),1
  15. NEXT a
  16. LINE (0,0)-(33,20),1,b
  17. LOCATE 2,1:PRINT "ENDE";
  18. DATA 36,0,36,4,,,44,4,,,45,0
  19. DATA 50,0,50,4,,,47,5,,,47,7,,,52,9,,,44,12,,,50,13,,,52,11,,,63,14,,,63,12,,,66,8,,,66,5,,,63,5,,,61,0
  20. DATA 0,90,23,76,,,35,83,,,47,79,,,85,83,,,85,93,,,80,96,,,82,100
  21. DATA 124,0,128,2,,,125,5,,,120,2,,,105,6,,,102,8,,,100,5,,,93,5,,,89,0,,,85,5,,,75,8,,,70,15,,,57,21,,,55,19,,,51,24,,,44,21,,,44,25,,,53,29,,,47,28,,,45,45,,,24,37,,,20,47,,,14,56,,,15,65,,,23,73,,,36,75,,,48,68,,,46
  22. DATA 65,,,52,58,,,60,56,,,63,50,,,66,50,,,71,53,,,82,48
  23. DATA 91,78,100,78,,,99,84,,,91,81,,,91,78
  24. DATA 76,64,81,64,,,80,73,,,76,70,,,76,64
  25. DATA 79,56,81,56,,,81,60,,,79,60,,,79,56
  26. DATA 82,48,87,51,,,85,55,,,104,74,,,102,79,,,103,81,,,108,75,,,106,71,,,107,68,,,111,72,,,112,74,,,102,67,,,93,47,,,95,44
  27. DATA 95,44,102,47,,,102,53,,,115,63,,,115,70,,,122,78,,,125,87,,,128,85,,,131,80,,,129,70,,,134,66,,,140,68,,,150,83,,,160,83
  28. LINE(46,46)-(62,54),1
  29. LINE (82,47)-(94,46),1
  30. LINE (82,30)-(75,11),1
  31. LINE (83,48)-(82,30),1
  32. LINE (103,8)-(101,30),1
  33. LINE -(83,34),1
  34. LINE (101,30)-(128,25),1
  35. LINE (128,25)-(126,5),1
  36. LINE (108,30)-(105,54),1
  37. LINE -(136,66),1
  38. LINE -(122,27),1
  39. LINE (128,39)-(160,27),1
  40. DIM status%(16),land$(16),kx1%(16),kx2%(16),ky1%(16),ky2%(16)
  41. FOR a=1 TO 16
  42.  READ status%(a),land$(a),kx1%(a),ky1%(a),kx2%(a),ky2%(a)
  43.  PAINT (kx1%(a)+(kx2%(a)-kx1%(a))/2,ky1%(a)+(ky2%(a)-ky1%(a))/2),status%(a)+2,1
  44. NEXT a
  45. DATA 4,"Irland",35,0,44,4
  46. DATA 4,"England",45,0,66,15
  47. DATA 0,"Italien",93,50,105,75
  48. DATA 5,"Afrika",0,77,85,100
  49. DATA 1,"Korsika",79,56,81,60
  50. DATA 0,"Sardinien",76,64,80,72
  51. DATA 0,"Sizilien",91,78,100,84
  52. DATA 5,"Spanien",23,47,46,57
  53. DATA 0,"Gallien",52,13,75,53
  54. DATA 2,"Germanien",83,6,100,33
  55. DATA 0,"Illyrien",83,35,105,50
  56. DATA 3,"Dacien",108,30,122,54
  57. DATA 2,"Ostgermanien",104,9,125,24
  58. DATA 6,"Sarmatien",127,5,160,27
  59. DATA 3,"Griechenland",115,73,133,85
  60. DATA 6,"Klein-Asien",133,37,160,80
  61. FOR a=0 TO 6
  62.  READ rang$(a),status$(a)
  63. NEXT a
  64. DATA "Soldat","römisch","Optio","gallisch","Centurio","germanisch","Tribun","griechisch","Präfekt","britisch","Senator","afrikanisch","Cäsar","asiatisch"
  65. FOR a=0 TO 6
  66.  LINE (180,a*8)-(190,a*8+8),a+2,bf
  67.  LOCATE a+1,26:PRINT status$(a);
  68. NEXT a
  69. FOR a=1 TO 2
  70.  FOR b=1 TO 4
  71.   LINE (185+(b-1)*25,60+(a-1)*30)-(185+b*25,60+30*a),1,b
  72.   READ xstart,ystart
  73.   x=0:y=0
  74.   mal:
  75.   READ a$:IF a$="-" THEN x=x+1:GOTO mal
  76.   IF a$="*" THEN x=x+1:PSET(185+(b-1)*25+xstart+x,60+(a-1)*30+ystart+y),1:GOTO mal
  77.   IF a$="#" THEN x=0:y=y+1:GOTO mal
  78.  NEXT b
  79. NEXT a
  80. FOR a=0 TO 8
  81.  READ b,c,d
  82.  FOR e=100 TO 0 STEP -1
  83.   IF b<=e/100 THEN x=e/100
  84.   IF c<=e/100 THEN y=e/100
  85.   IF d<=e/100 THEN z=e/100
  86.   PALETTE a,x,y,z
  87.  NEXT e
  88. NEXT a
  89. LOCATE 18,2:PRINT "Spielstand laden ?";:
  90. CALL Eingabe (25,18,"jJnN",1)
  91. LOCATE 18,2:PRINT SPACE$(35)
  92. IF UCASE$(a$)="J" THEN
  93.  slad%=1:WINDOW 5,"         ,,, Laden ,,,",(0,36)-(310,120),0,1
  94.  GOSUB laden
  95.  IF slad%=1 THEN lad2
  96. END IF
  97. LOCATE 18,2:PRINT "Wieviel Spieler (1-8) ?"
  98. CALL Eingabe (27,18,"12345678",1)
  99. spieler%=VAL(a$)
  100. FOR a=1 TO spieler%
  101.  LOCATE 18,2:PRINT "Name Spieler"a":"SPACE$(20)
  102.  CALL Alles
  103.  CALL Eingabe (19,18,z$,12)
  104.  na$(a)=a$
  105.  LOCATE 18,2:PRINT SPACE$(40)
  106.  ver(a)=10000:alter%(a)=30
  107. NEXT a
  108. DIM chronik$(spieler%,50)
  109. z=0:jahr%=12:start%=1
  110. jahresschleife:
  111. z=z+1
  112. lad2:
  113. IF slad%=0 THEN GOSUB zufall
  114. slad%=0
  115. LINE (0,101)-(180,200),0,bf
  116. IF gf%(z)>0 THEN
  117.  LOCATE 14,1:PRINT rang$(rang%(z))" "na$(z)
  118.  PRINT "sitzt im Gefängnis..."
  119.  Test=MOUSE(0):WHILE MOUSE(0)=0:WEND
  120.  GOTO jahresende
  121. END IF
  122. warte1:
  123. LOCATE 14,1:PRINT "Wir schreiben"
  124. PRINT "      das Jahr "jahr%
  125. PRINT :PRINT rang$(rang%(z))" "na$(z)
  126. LOCATE 19,1:PRINT "Vermögen : ";
  127. LOCATE 20,3:PRINT ver(z)" Sesterzen"SPACE$(30);
  128. SLEEP:SLEEP
  129. Test=MOUSE(0):WHILE MOUSE(0)=0:WEND
  130. x=MOUSE(1):y=MOUSE(2):Test=MOUSE(0)
  131. ff=0
  132. FOR a=1 TO 16
  133.  IF kx1%(a)<x AND x<kx2%(a) AND ky1%(a)<y AND y<ky2%(a) THEN 
  134.   WINDOW 5,"Landkarte",(0,100)-(310,135),0,1
  135.   LOCATE 1,1:PRINT "Name : "land$(a)
  136.   PRINT :PRINT "steht unter "status$(status%(a))"em Besitz"
  137.   SLEEP:SLEEP:Test=MOUSE(0):WHILE MOUSE(0)=0:WEND
  138.   FOR b=1 TO 100:NEXT b:Test=MOUSE(0):ff=1:WINDOW CLOSE 5:a=16
  139.  END IF
  140. NEXT a
  141. IF ff=1 THEN warte1
  142. IF x<32 AND y<20 THEN GOTO jahreszufall
  143. IF x<160 AND y<100 THEN 
  144.  LOCATE 22,1:PRINT "Bitte noch einmal ....";
  145.  GOSUB Maus:LOCATE 22,1:PRINT SPACE$(30);
  146.  GOTO warte1
  147. ELSEIF x>185 AND x<285 AND y>60 AND y<120 THEN
  148.  x=INT ((x-185)/25)+1:y=INT ((y-60)/30)+1
  149.  PUT (185+(x-1)*25,60+(y-1)*30),klick%,XOR
  150.  FOR b=1 TO 200:NEXT b
  151.  PUT (185+(x-1)*25,60+(y-1)*30),klick%,XOR
  152.  IF y=1 THEN ON x GOTO armee,wirtschaft,politik,schiffe
  153.  ON x GOTO handel,eroberungen2,chronik,projekt
  154. END IF
  155. GOTO warte1
  156. projekt:
  157. WINDOW 5,"    # # # Projekt # # #",(0,36)-(310,120),0,1
  158. projekt2:
  159. CLS
  160. PRINT TAB(7)" Speichern"
  161. PRINT TAB(7)" Laden"
  162. PRINT TAB(7)" Schluß"
  163. PRINT TAB(7)" Ende"
  164. CALL Mouseklick(1,4)
  165. IF a$="4" THEN WINDOW CLOSE 5:GOTO warte1
  166. ON VAL(a$) GOTO speichern,laden,ende
  167. ende:
  168. LOCATE 7,1:PRINT "Wirklich Ende ?";:CALL Eingabe(17,7,"jJnN",1)
  169. IF UCASE$(a$)="N" THEN projekt2
  170. WINDOW CLOSE 5:WINDOW CLOSE 3:MENU RESET:SCREEN CLOSE 1:SYSTEM
  171. laden:
  172. LOCATE 7,1:PRINT "Wirklich laden ?";:CALL Eingabe (20,7,"jJnN",1)
  173. IF UCASE$(a$)="N" AND slad%=0 THEN projekt2
  174. IF UCASE$(a$)="N" THEN WINDOW CLOSE 5:slad%=0:RETURN
  175. CALL Alles
  176. PRINT :PRINT "Filename :";:CALL Eingabe(12,8,z$,15)
  177. OPEN a$ FOR APPEND AS#1
  178. IF LOF(1)=0 THEN
  179.  PRINT :PRINT "Diskerror !!!"
  180.  GOSUB Maus
  181.  CLOSE #1:IF slad%=0 THEN projekt2
  182.  WINDOW CLOSE 5:slad%=0:RETURN
  183. END IF
  184. CLOSE #1
  185. aspieler%=spieler%
  186. OPEN a$ FOR INPUT AS #2
  187. INPUT#2,jahr%
  188. INPUT#2,z:
  189. INPUT#2,spieler%
  190. IF slad%=1 THEN DIM chronik$(spieler%,50)
  191. IF slad%=0 AND spieler%>aspieler% THEN
  192.  ERASE chronik$
  193.  DIM chronik$(spieler%,50)
  194. END IF
  195. FOR a=1 TO spieler%
  196.  INPUT#2,rang%(a)
  197.  INPUT#2,punkte(a)
  198.  INPUT#2,ver(a)
  199.  INPUT#2,gf%(a)
  200.  INPUT#2,sklaven(a)
  201.  INPUT#2,wein(a)
  202.  INPUT#2,teppiche(a)
  203.  INPUT#2,oliven(a)
  204.  INPUT#2,schiffe%(a)
  205.  INPUT#2,reiter%(a)
  206.  INPUT#2,volk%(a)
  207.  INPUT#2,matrosen%(a)
  208.  INPUT#2,katapulte%(a)
  209.  INPUT#2,kschiffe%(a)
  210.  INPUT#2,maerkte%(a)
  211.  INPUT#2,muehle%(a)
  212.  INPUT#2,stein%(a)
  213.  INPUT#2,heirat%(a)
  214.  INPUT#2,na$(a)
  215.  INPUT#2,alter%(a)
  216.  INPUT#2,chronik%(a)
  217.  IF chronik%(a)>0 THEN
  218.   FOR b=1 TO chronik%(a)
  219.    INPUT#2,chronik$(a,b)
  220.   NEXT b
  221.  END IF
  222. NEXT a
  223. INPUT#2,wegr%
  224. INPUT#2,wegv%
  225. INPUT#2,wegm%
  226. INPUT#2,wegk%
  227. INPUT#2,wegs%
  228. INPUT#2,me
  229. IF me>0 THEN 
  230.  FOR a=1 TO me
  231.   INPUT#2,unter(a)
  232.  NEXT a
  233. END IF
  234. WINDOW OUTPUT 3
  235. FOR a=1 TO 16
  236.  INPUT#2,status%(a)
  237.  PAINT (kx1%(a)+(kx2%(a)-kx1%(a))/2,ky1%(a)+(ky2%(a)-ky1%(a))/2),status%(a)+2,1 
  238. NEXT a
  239. WINDOW OUTPUT 5
  240. INPUT#2,re%
  241. INPUT#2,fu%
  242. INPUT#2,ma%
  243. INPUT#2,ka%
  244. INPUT#2,ks%
  245. INPUT#2,st%
  246. INPUT#2,mu%
  247. INPUT#2,mr%
  248. INPUT#2,rd%
  249. INPUT#2,ss%
  250. FOR a=1 TO 4
  251.  INPUT#2,skp%(a)
  252.  INPUT#2,tep%(a)
  253.  INPUT#2,wep%(a)
  254.  INPUT#2,olp%(a)
  255.  INPUT#2,heuer%(a)
  256. NEXT a
  257. INPUT#2,asch%
  258. INPUT#2,anzl%
  259. CLOSE#2
  260. IF slad%=1 THEN WINDOW CLOSE 5:RETURN
  261. GOTO projekt2
  262. speichern:
  263. LOCATE 7,1:PRINT "Wirklich speichern ?";:CALL Eingabe (22,7,"jJnN",1)
  264. IF UCASE$(a$)="N" THEN projekt2
  265. CALL Alles
  266. PRINT :PRINT "Filename :";:CALL Eingabe(12,8,z$,15)
  267. OPEN a$ FOR OUTPUT AS #2
  268. PRINT#2,jahr%
  269. PRINT#2,z
  270. PRINT#2,spieler%
  271. FOR a=1 TO spieler%
  272.  PRINT#2,rang%(a)
  273.  PRINT#2,punkte(a)
  274.  PRINT#2,ver(a)
  275.  PRINT#2,gf%(a)
  276.  PRINT#2,sklaven(a)
  277.  PRINT#2,wein(a)
  278.  PRINT#2,teppiche(a)
  279.  PRINT#2,oliven(a)
  280.  PRINT#2,schiffe%(a)
  281.  PRINT#2,reiter%(a)
  282.  PRINT#2,volk%(a)
  283.  PRINT#2,matrosen%(a)
  284.  PRINT#2,katapulte%(a)
  285.  PRINT#2,kschiffe%(a)
  286.  PRINT#2,maerkte%(a)
  287.  PRINT#2,muehle%(a)
  288.  PRINT#2,stein%(a)
  289.  PRINT#2,heirat%(a)
  290.  PRINT#2,na$(a)
  291.  PRINT#2,alter%(a)
  292.  PRINT#2,chronik%(a)
  293.  IF chronik%(a)>0 THEN
  294.   FOR b=1 TO chronik%(a)
  295.    PRINT#2,chronik$(a,b)
  296.   NEXT b
  297.  END IF
  298. NEXT a
  299. PRINT#2,wegr%
  300. PRINT#2,wegv%
  301. PRINT#2,wegm%
  302. PRINT#2,wegk%
  303. PRINT#2,wegs%
  304. PRINT#2,me
  305. IF me>0 THEN 
  306.  FOR a=1 TO me
  307.   PRINT#2,unter(a)
  308.  NEXT a
  309. END IF
  310. FOR a=1 TO 16
  311.  PRINT#2,status%(a)
  312. NEXT a
  313. PRINT#2,re%
  314. PRINT#2,fu%
  315. PRINT#2,ma%
  316. PRINT#2,ka%
  317. PRINT#2,ks%
  318. PRINT#2,st%
  319. PRINT#2,mu%
  320. PRINT#2,mr%
  321. PRINT#2,rd%
  322. PRINT#2,ss%
  323. FOR a=1 TO 4
  324.  PRINT#2,skp%(a)
  325.  PRINT#2,tep%(a)
  326.  PRINT#2,wep%(a)
  327.  PRINT#2,olp%(a)
  328.  PRINT#2,heuer%(a)
  329. NEXT a
  330. PRINT#2,asch%
  331. PRINT#2,anzl%
  332. CLOSE#2
  333. GOTO projekt2
  334. jahreszufall:
  335. WINDOW 5,"             <<<Ereignis>>>",(0,36)-(310,160),0,1
  336. IF INT((100-alter%(z))*RND)<2 THEN
  337.  PRINT "Leider muß ich Ihnen mitteilen , daß"
  338.  PRINT na$(z)" "alter%(z)"jährig gestorben ist."
  339.  c=INT(ver(z)*RND):PRINT "Verlust an andere Erben :"
  340.  PRINT "  "c" Sesterzen"
  341.  PRINT "Wie heißt sein/ihr Nachfolger/in ?";
  342.  GOSUB cpruef:chronik%(z)=chronik%(z)+1
  343.  chronik$(z,chronik%(z))=STR$(jahr%)+" starb "+na$(z)+"."
  344.  CALL Alles
  345.  CALL Eingabe(3,6,z$,12):PRINT:PRINT  
  346.  na$(z)=a$
  347.  PRINT "Veranstalten Sie einen Trauerzug ?"
  348.  CALL Eingabe(3,10,"jJnN",1)
  349.  IF UCASE$(a$)="J" THEN ver(z)=ver(z)-10000:punkte(z)=punkte(z)+0.3
  350.  ver(z)=ver(z)-c:alter%(z)=30:heirat%(z)=0
  351.  CLS
  352. END IF
  353. ran%=INT(29*RND)+1:IF ran%<22 THEN
  354.  ON ran% GOTO 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
  355. END IF
  356. pech:
  357. PRINT "Nichts besonderes los...."
  358. pech2:
  359. GOSUB Maus
  360. WINDOW CLOSE 5
  361. jahresende:
  362. WINDOW 5,"     * * * * Bilanz * * * *",(0,0)-(310,180),0,1
  363. c=maerkte%(z)*(INT(100*RND)+50)
  364. PRINT "Ihre Märkte erbrachten":LOCATE 1,28:PRINT c
  365. gewinn=c
  366. PRINT :c=muehle%(z)*(INT(250*RND)+100)
  367. PRINT "Ihre Mühlen erarbeiteten":LOCATE 3,28:PRINT c
  368. PRINT :gewinn=gewinn+c:c=stein%(z)*(INT(600*RND)+200)
  369. gewinn=gewinn+c
  370. PRINT "Ihre Steinbrüche ergaben":LOCATE 5,28:PRINT c
  371. PRINT 
  372. IF me>0 THEN
  373.  c=0:FOR a=1 TO me:schiffe%(z)=schiffe%(z)+1:c=c+unter(a):NEXT a
  374.  PRINT "Ihr Handelsgewinn beträgt":LOCATE 7,28:PRINT c
  375.  gewinn=gewinn+c
  376. ELSE
  377.  PRINT 
  378. END IF
  379. PRINT :c=(schiffe%(z)-me)*500:PRINT "Hafengebühren":LOCATE 9,28:PRINT c
  380. gewinn=gewinn-c     
  381. IF gewinn>0 THEN 
  382.  PRINT :c=INT(gewinn/10):PRINT "Einkommenssteuer":LOCATE 11,28:PRINT c:gewinn=gewinn-c
  383. ELSE
  384.  PRINT :PRINT 
  385. END IF
  386. PRINT :PRINT "Gesamtgewinn :":LOCATE 13,28:PRINT gewinn
  387. LOCATE 14,28:PRINT "Sesterzen"
  388. LINE (0,93)-(310,93),1
  389. ver(z)=ver(z)+gewinn:IF gewinn>punkte(z)*1250 THEN punkte(z)=punkte(z)+(100-punkte(z))*0.01
  390. IF gf%(z)>0 THEN
  391.  gf%(z)=gf%(z)-1
  392. ELSEIF ver(z)<-19999 THEN
  393.  PRINT :PRINT "Tut mir leid , Sie wandern"
  394.  PRINT "in den Schuldturm.":punkte(z)=punkte(z)-1.5:IF punkte(z)<0 THEN punkte(z)=0
  395.  GOSUB cpruef:chronik%(z)=chronik%(z)+1:chronik$(z,chronik%(z))="Saß im Jahre "+STR$(jahr%)+" im Schuldturm."
  396.  gf%(z)=1
  397. ELSEIF krieg%>0 THEN
  398.  krieg%=krieg%-1:gf%(z)=1:GOSUB cpruef:chronik%(z)=chronik%(z)+1
  399.  chronik$(z,chronik%(z))=na$(z)+" saß im Jahre "+STR$(jahr%)+" im Gefängnis."
  400. END IF
  401. alter%(z)=alter%(z)+1
  402. IF punkte(z)>=100 AND ver(z)>1000000 THEN
  403.  CLS
  404.  PRINT :PRINT 
  405.  PRINT "Suuuuuper ! ! !"
  406.  PRINT "Sie haben es zum Cäsaren gebracht !!!"
  407.  PRINT "Bisherige Cäsaren :"
  408.  OPEN "cs" FOR INPUT AS#1
  409.  WHILE NOT EOF(1)
  410.   INPUT#1,a$:PRINT a$
  411.  WEND
  412.  CLOSE#1:OPEN "cs" FOR APPEND AS#1
  413.  PRINT#1,na$(z)
  414.  CLOSE#1:GOSUB Maus
  415.  WINDOW CLOSE 5:WINDOW CLOSE 3:SCREEN CLOSE 1:SYSTEM
  416. END IF
  417. IF (rang%(z)+1)*15<punkte(z) AND ver(z)>rang%(z)*75000 AND punkte(z)<90 THEN
  418.  COLOR 2,0
  419.  PRINT:PRINT :PRINT "Gratuliere , Sie werden zum "rang$(rang%(z)+1)
  420.  PRINT "beördert."
  421.  rang%(z)=rang%(z)+1
  422.  COLOR 1,0
  423.  GOSUB cpruef:chronik%(z)=chronik%(z)+1
  424.  chronik$(z,chronik%(z))=na$(z)+" wurde"+STR$(jahr%)+" zum "+rang$(rang%(z))+" befördert."
  425. END IF
  426. volk%(z)=volk%(z)+wegv%
  427. matrosen%(z)=matrosen%(z)+wegm%
  428. reiter%(z)=reiter%(z)+wegr%
  429. katapulte%(z)=katapulte%(z)+wegk%
  430. kschiffe%(z)=kschiffe%(z)+wegs%
  431. wegk%=0:wegs%=0:wegr%=0:wegm%=0:wegv%=0
  432. GOSUB Maus:WINDOW CLOSE 5:asch%=0:me=0
  433. IF z<spieler% THEN jahresschleife
  434. z=0
  435. jahr%=jahr%+1
  436. IF jahr%=750 THEN
  437.  WINDOW 5,"Spielende........",(0,0)-(310,100),0,1
  438.  PRINT :PRINT :PRINT "Nun wird das römische Reich in 2 Teile"
  439.  PRINT "geteilt , es wird nie wieder einen"
  440.  PRINT "Cäsaren geben."
  441.  PRINT "Das heißt , daß alle Spieler versagt."
  442.  PRINT "haben."
  443.  GOSUB Maus
  444.  WINDOW CLOSE 5
  445.  WINDOW CLOSE 3:SCREEN CLOSE 1:SYSTEM
  446. END IF
  447. GOTO jahresschleife
  448. 1 :
  449. IF stein%(z)=0 THEN pech
  450. c=INT(stein%(z)*RND)+1
  451. PRINT "Bei einem Erdbeben verloren "
  452. PRINT "Sie"c" Steinbrüche."
  453. stein%(z)=stein%(z)-c:GOTO pech2
  454. 2 :
  455. IF muehle%(z)=0 THEN pech
  456. c=INT(muehle%(z)*RND)+1
  457. PRINT "Bei einem Feuer verloren"
  458. PRINT "Sie"c" Mühlen."
  459. muehle%(z)=muehle%(z)-c:GOTO pech2
  460. 3 :
  461. IF maerkte%(z)=0 THEN pech
  462. c=INT(maerkte%(z)*RND)+1
  463. PRINT "Bei einem Feuer verloren"
  464. PRINT "Sie"c" Märkte."
  465. maerkte%(z)=maerkte%(z)-c:GOTO pech2
  466. 4 :
  467. IF wein(z)=0 THEN pech
  468. c=INT(wein(z)*RND)+1
  469. PRINT c" Flaschen Wein liefen aus."
  470. wein(z)=wein(z)-c:GOTO pech2
  471. 5 :
  472. IF oliven(z)=0 THEN pech
  473. c=INT(oliven(z)*RND)+1
  474. PRINT c" Körbe Oliven sind verfault."
  475. oliven(z)=oliven(z)-c:GOTO pech2
  476. 6 :
  477. IF teppiche(z)=0 THEN pech
  478. c=INT(teppiche(z)*RND)+1
  479. PRINT "Es wurden"c" Teppiche gestohlen."
  480. teppiche(z)=teppiche(z)-c:GOTO pech2
  481. 7 :
  482. IF sklaven(z)=0 THEN pech
  483. c=INT(sklaven(z)*RND)+1
  484. PRINT c" Sklaven flohen."
  485. sklaven(z)=sklaven(z)-c:GOTO pech2
  486. 8 :
  487. IF rang%(z)<3 OR volk%(z)+wegv%>29950 THEN pech
  488. c=INT(50*RND)+1
  489. PRINT "Es meldeten sich"c
  490. PRINT " Soldaten freiwillig."
  491. volk%(z)=volk%(z)+c:GOTO pech2
  492. 9 :
  493. IF rang%(z)<3 OR kschiffe%(z)+wegs%>245 THEN pech
  494. c=INT(5*RND)+1
  495. PRINT c" Kriegsschiffe konnten"
  496. PRINT "geentert werden."
  497. kschiffe%(z)=kschiffe%(z)+c:GOTO pech2
  498. 10 :
  499. PRINT "Ein Kloster bittet Sie um eine Spende."
  500. PRINT "Wieviel geben Sie :"
  501. CALL Eingabe(3,3,"0123456789",4)
  502. ver(z)=ver(z)-VAL(a$):punkte(z)=punkte(z)+INT(VAL(a$)/1500)/30
  503. GOTO pech2
  504. 11 :
  505. PRINT "Geben Sie arbeitslosen Gladiatoren "
  506. PRINT "5000 Sesterzen ?"
  507. CALL Eingabe(3,3,"jJnN",1)
  508. IF UCASE$(a$)="J" THEN ver(z)=ver(z)-5000:punkte(z)=punkte(z)+0.3
  509. GOTO pech2
  510. 12 :
  511. IF heirat%(z)=1 THEN pech
  512. PRINT "Wollen Sie in eine reiche Adelsfamilie"
  513. PRINT "einheiraten ?"
  514. CALL Eingabe(3,3,"jJnN",1)
  515. IF UCASE$(a$)="N" THEN pech2
  516. ver(z)=ver(z)+INT(100000*RND):punkte(z)=punkte(z)+0.5
  517. GOSUB cpruef:chronik%(z)=chronik%(z)+1:chronik$(z,chronik%(z))="Heirat im Jahre "+STR$(jahr%)+"."
  518. heirat%(z)=1:GOTO pech2
  519. 13 :
  520. IF heirat%(z)=1 THEN pech
  521. PRINT "Ihr Herz ist für ein/en armes/en
  522. PRINT "Bauernmädchen/jungen entflammt."
  523. PRINT "Heiraten Sie sie/ihn ?"
  524. CALL Eingabe(3,4,"jJnN",1)
  525. IF UCASE$(a$)="N" THEN pech2
  526. ver(z)=ver(z)-INT(3000*RND):punkte(z)=punkte(z)+1.5
  527. GOSUB cpruef:chronik%(z)=chronik%(z)+1:chronik$(z,chronik%(z))="Heirat im Jahre "+STR$(jahr%)+"."
  528. heirat%(z)=1:GOTO pech2
  529. 14 :
  530. IF me=0 THEN pech
  531. PRINT "Eines Ihrer Schiffe wurde von Piraten"
  532. PRINT "geentert und ausgeraubt."
  533. me=me-1:GOTO pech2
  534. 15 :
  535. PRINT "Durch einen Zufall gelangen Dokumente"
  536. PRINT "im Wert von 15000 Sesterzen in Ihre "
  537. PRINT "Hände."
  538. ver(z)=ver(z)+15000:GOTO pech2
  539. 16 :
  540. PRINT "Ihnen wird ein Schmuggelgeschäft 
  541. PRINT "angeboten. Nehmen Sie an ?"
  542. CALL Eingabe(3,3,"jJnN",1)
  543. IF UCASE$(a$)="N" THEN pech2
  544. PRINT 
  545. IF RND>0.65 THEN
  546.  PRINT "Gratuliere , Sie hatten Glück."
  547.  c=INT (200000*RND):PRINT "Gewinn :"c"Sesterzen."
  548.  ver(z)=ver(z)+c
  549. ELSE
  550.  PRINT "Pech gehabt, Sie wandern ins Gefängnis."
  551.  krieg%=1
  552. END IF
  553. GOTO pech2
  554. 17 :
  555. c=INT(16*RND)+1:IF c=3 THEN 17
  556. b=INT(6*RND)+1:IF status%(c)=b THEN pech
  557. IF status%(c)>0 OR rang%(z)<3 THEN
  558.  PRINT "Ein "status$(b)"er Angriff"
  559.  PRINT " gegen "land$(c)"."
  560.  status%(c)=b:WINDOW OUTPUT 3
  561.  PAINT (kx1%(c)+(kx2%(c)-kx1%(c))/2,ky1%(c)+(ky2%(c)-ky1%(c))/2),status%(c)+2,1   
  562.  WINDOW OUTPUT 5:GOTO pech2
  563. ELSE
  564.  PRINT "Ein "status$(b)"er Angriff gegen das"
  565.  PRINT "römische "land$(c)"."
  566.  PRINT "Retten Sie es !!!"
  567.  GOSUB Maus
  568.  krieg%=1:CLS:ff=c:GOSUB ero:
  569.  IF status%(ff)=0 THEN PRINT "Gut gemacht": :ELSE PRINT "Versager"
  570. END IF
  571. GOTO pech2
  572. 18 :
  573. IF schiffe%(z)+me=>999 THEN pech 
  574. PRINT "Es biete sich Ihnen die Möglichkeit ,"
  575. PRINT "ein Schiff zu heben. Einverstanden ?"
  576. CALL Eingabe(3,3,"jJnN",1)
  577. IF UCASE$(a$)="N" THEN pech2
  578. PRINT 
  579. IF RND>0.6 THEN
  580.  PRINT "Es ist geglückt !!!"
  581.  c=INT(500*RND):PRINT "Kosten :"c"Sesterzen."
  582.  ver(z)=ver(z)-c:schiffe%(z)=schiffe%(z)+1
  583. ELSE
  584.  PRINT "Pech gehabt...."
  585.  c=INT(1500*RND)+500:PRINT "Kosten :"c"Sesterzen."
  586.  ver(z)=ver(z)-c
  587. END IF
  588. GOTO pech2
  589. 19 :
  590. PRINT "Sie sind krank ! Wollen Sie einen Arzt?"
  591. CALL Eingabe(3,2,"jJnN",1)
  592. PRINT 
  593. IF UCASE$(a$)="N" THEN
  594.  IF RND>0.5 THEN
  595.   c=INT(1000*RND*punkte(z))+500
  596.   PRINT "Hospitalkosten :"c"Sesterzen"
  597.   ver(z)=ver(z)-c
  598.  END IF
  599.  GOTO pech2
  600. END IF
  601. c=INT(100*RND*punkte(z))+10:PRINT "Arztkosten :"c"Sesterzen."
  602. ver(z)=ver(z)-c:punkte(z)=punkte(z)+0.01
  603. GOTO pech2
  604. 20 :
  605. PRINT "Veranstalten Sie die diesjährigen"
  606. PRINT "Marsfestspiele ?"
  607. CALL Eingabe(3,3,"jJnN",1)
  608. PRINT :IF UCASE$(a$)="N" THEN pech2
  609. PRINT "Wie prunkvoll gestalten Sie sie ?"
  610. PRINT "(0-gar nicht,99-prächtig)"
  611. CALL Eingabe(3,6,"0123456789",2)
  612. punkte(z)=punkte(z)+VAL(a$)/300
  613. ver(z)=ver(z)-1000-VAL(a$)*300
  614. GOTO pech2
  615. 21 :
  616. PRINT "Geben Sie einen Empfang für die"
  617. PRINT "Vertreter einer neuen Sekte "
  618. PRINT " - der `Christen` ?"
  619. CALL Eingabe(3,4,"jJnN",1)
  620. IF UCASE$(a$)="N" THEN pech2
  621. IF RND>0.3 THEN
  622.  PRINT :PRINT "Das Volk ist begeistert von der"
  623.  PRINT "Sekte , die Sie populär machten."
  624.  punkte(z)=punkte(z)+0.6
  625. ELSE
  626.  PRINT :PRINT "Sie weren vom Senat wegen"
  627.  PRINT "Verleumdung der Staatsreligion"
  628.  PRINT "getadelt."
  629.  punkte(z)=punkte(z)-0.2
  630. END IF
  631. GOTO pech2 
  632. chronik:
  633. WINDOW 5,"          ...Chronik...",(0,0)-(310,180),0,1
  634. zeile=0
  635. IF chronik%(z)=0 THEN
  636.  PRINT na$(z)" hat noch nichts"
  637.  PRINT "Weltbewegendes vollbracht."
  638.  GOSUB Maus
  639.  GOTO punktzahl
  640. END IF
  641. FOR a=1 TO chronik%(z)
  642.  a$=chronik$(z,a)
  643. chronik2:
  644.  IF zeile=20 THEN
  645.   GOSUB Maus
  646.   CLS
  647.   zeile=0
  648.  END IF
  649.  IF LEFT$(a$,1)=" " THEN a$=RIGHT$(a$,LEN(a$)-1)
  650.  IF LEN(a$)>38 THEN
  651.   PRINT LEFT$(a$,37)"-":a$=RIGHT$(a$,LEN(a$)-37):zeile=zeile+1:GOTO chronik2
  652.  ELSE
  653.   zeile=zeile+1:PRINT a$
  654.  END IF
  655. NEXT a
  656. GOSUB Maus
  657. punktzahl:
  658. CLS
  659. LOCATE 2,10:PRINT "Punktzahl : "INT(punkte(z))
  660. FOR a=1 TO 5
  661.  LINE (a*30,40)-(a*30,45),1
  662. NEXT a
  663. LINE (200,40)-(200,45),1
  664. LINE (0,46)-(punkte(z)*2,56),2,bf
  665. GOSUB Maus:WINDOW CLOSE 5:GOTO warte1
  666. GOTO warte1
  667. eroberungen2:
  668. IF rang%(z)<3 THEN 
  669.  LOCATE 22,1:PRINT "Eroberungen erst ab Tribun ...";:
  670.  GOSUB Maus
  671.  LOCATE 22,1:PRINT SPACE$(35);
  672.  GOTO warte1
  673. END IF
  674. WINDOW CLOSE 5:LOCATE 21,1:ff=-2:PRINT "Bitte geben Sie das zu "SPACE$(10)
  675. PRINT "erobernde Land an !!";
  676. WHILE ff=-2:
  677.  SLEEP:SLEEP
  678.  Test=MOUSE(0):WHILE MOUSE(0)=0:WEND:Test=MOUSE(0):x=MOUSE(1):y=MOUSE(2)
  679.  IF x<33 AND y<20 THEN ff=-1:GOTO erende
  680.  FOR a=1 TO 16
  681.   IF kx1%(a)<x AND x<kx2%(a) AND ky1%(a)<y AND y<ky2%(a) THEN ff=a:a=16
  682.  NEXT a
  683. erende:
  684. WEND
  685. LOCATE 21,1:PRINT SPACE$(35);:LOCATE 22,1:PRINT SPACE$(35);
  686. IF ff=-1 THEN warte1
  687. IF status%(ff)=0 THEN 
  688.  LOCATE 21,1:PRINT land$(ff)" ist bereits römisch !"
  689.  Test=MOUSE(0):SLEEP:SLEEP:SLEEP:Test=MOUSE(0):GOTO eroberungen2
  690. END IF
  691. a$="Krieg gegen "+land$(ff)
  692. WINDOW 5,a$,(0,102)-(310,180),0,1
  693. ero:
  694. PRINT "Wieviel Fußvolk ? (max."volk%(z)")"
  695. CALL Eingabe(3,2,"0123456789",5)
  696. IF VAL(a$)>volk%(z) THEN
  697.  IF krieg%=1 THEN 
  698.   a$=STR$(volk%(z))
  699.  ELSE 
  700.   BEEP:GOTO eroberungen2
  701.  END IF
  702. END IF
  703. vein%=VAL(a$)
  704. PRINT :PRINT "Wieviele Matrosen ? (max."matrosen%(z)")"
  705. CALL Eingabe(3,4,"0123456789",5)
  706. IF VAL(a$)>matrosen%(z) THEN 
  707.  IF krieg%=1 THEN
  708.   a$=STR$(matrosen%(z))
  709.  ELSE
  710.   BEEP:GOTO eroberungen2
  711.  END IF
  712. END IF 
  713. mein%=VAL(a$)
  714. PRINT :PRINT "Wieviele Reiter ? (max."reiter%(z)")"
  715. CALL Eingabe(3,6,"0123456789",5)
  716. IF VAL(a$)>reiter%(z) THEN
  717.  IF krieg%=1 THEN
  718.   a$=STR$(reiter%(z))
  719.  ELSE
  720.   BEEP:GOTO eroberungen2
  721.  END IF
  722. END IF
  723. rein%=VAL(a$)
  724. CLS:PRINT "Wieviele Katapulte ? (max."katapulte%(z)")"
  725. CALL Eingabe(3,2,"0123456789",3)
  726. IF VAL(a$)>katapulte%(z) THEN 
  727.  IF krieg%=1 THEN
  728.   a$=STR$(katapulte%(z))
  729.  ELSE
  730.   BEEP:GOTO eroberungen2
  731.  END IF
  732. END IF
  733. kein%=VAL(a$)
  734. PRINT :PRINT "Wieviele Schiffe ? (max."kschiffe%(z)")"
  735. CALL Eingabe(3,4,"0123456789",3)
  736. IF VAL(a$)>kschiffe%(z) THEN
  737.  IF krieg%=1 THEN
  738.   a$=STR$(kschiffe%(z))
  739.  ELSE
  740.   BEEP:GOTO eroberungen2
  741.  END IF
  742. END IF
  743. sein%=VAL(a$)
  744. PRINT :PRINT "Sicher (J/N) ?";:CALL Eingabe (17,5,"jJnN",1)
  745. IF UCASE$(a$)="N" THEN
  746.  IF krieg%=1 THEN
  747.   PRINT :PRINT "HAHAHAHAHAHA!!!!!"
  748.  ELSE
  749.   GOTO eroberungen2
  750.  END IF
  751. END IF
  752. kraft=vein%+1.5*mein%+2*rein%+10*kein%+50*sein%
  753. gkraft=(ky2%(ff)-ky1%(ff))*150+9*jahr%+(kx2%(ff)-kx1%(ff))*150+INT(15000*RND)
  754. volk%(z)=volk%(z)-vein%
  755. matrosen%(z)=matrosen%(z)-mein%
  756. reiter%(z)=reiter%(z)-rein%
  757. katapulte%(z)=katapulte%(z)-kein%
  758. kschiffe%(z)=kschiffe%(z)-sein%
  759. IF gkraft>kraft THEN
  760.  PRINT 
  761.  PRINT "Tut mir leid ,"
  762.  PRINT "Ihre Truppen wurden völlig aufgerieben."
  763.  c=INT(500000*RND):PRINT "Kosten :"c"Sesterzen"
  764.  ver(z)=ver(z)-c:punkte(z)=punkte(z)-2:IF punkte(z)<0 THEN punkte(z)=0
  765.  GOSUB cpruef:chronik%(z)=chronik%(z)+1:chronik$(z,chronik%(z))=STR$(jahr%)+" verlor "+na$(z)+" einen Feldzug gegen "+land$(ff)+"."
  766.  IF krieg%=1 THEN
  767.   status%(ff)=b:WINDOW OUTPUT 3
  768.   PAINT (kx1%(ff)+(kx2%(ff)-kx1%(ff))/2,ky1%(ff)+(ky2%(ff)-ky1%(ff))/2),status%(ff)+2,1
  769.   WINDOW OUTPUT 5
  770.  END IF
  771. ELSE
  772.  CLS
  773.  PRINT "Gratuliere ," 
  774.  PRINT "Ihre Truppen siegten souverän."
  775.  c=INT(500000*RND):PRINT "Belohnung :"c"Sesterzen ,"
  776.  PRINT "sowie Truppenverstärkung !!!"
  777.  GOSUB cpruef:chronik%(z)=chronik%(z)+1:chronik$(z,chronik%(z))=STR$(jahr%)+" eroberte "+na$(z)+" "+land$(ff)+"."
  778.  ver(z)=ver(z)+c
  779.  punkte(z)=punkte(z)+2
  780.  wegv%=wegv%+vein%:wegm%=wegm%+mein%
  781.  wegr%=wegr%+rein%:wegk%=wegk%+kein%
  782.  wegs%=wegs%+sein%
  783.  IF volk%(z)+wegv%<29500 THEN volk%(z)=volk%(z)+INT(500*RND)
  784.  IF matrosen%(z)+wegm%<19650 THEN matrosen%(z)=matrosen%(z)+INT(350*RND)
  785.  IF reiter%(z)+wegr%<9875 THEN reiter%(z)=reiter%(z)+INT(125*RND)
  786.  IF katapulte%(z)+wegk%<450 THEN katapulte%(z)=katapulte%(z)+INT(50*RND)
  787.  IF kschiffe%(z)+wegs%<238 THEN kschiffe%(z)=kschiffe%(z)+INT(12*RND)
  788.  PRINT "Die Armee steht Ihnen nächstes Jahr"
  789.  PRINT "wieder zur Verfügung."
  790.  status%(ff)=0
  791.  WINDOW OUTPUT 3
  792.  PAINT (kx1%(ff)+(kx2%(ff)-kx1%(ff))/2,ky1%(ff)+(ky2%(ff)-ky1%(ff))/2),2,1 
  793.  WINDOW OUTPUT 5
  794. END IF
  795. GOSUB Maus
  796. IF krieg%=1 THEN krieg%=0:RETURN
  797. GOTO eroberungen2
  798. handel:
  799. WINDOW 5,"        ===== Handel =====",(0,36)-(310,160),0,1
  800. handel2:
  801. CLS:
  802. PRINT "Vermögen   : "ver(z)" Sesterzen"
  803. PRINT "Sklaven    : "sklaven(z)
  804. PRINT "Teppiche   : "teppiche(z)
  805. PRINT "Weinkrüge  : "wein(z)
  806. PRINT "Olivenkörbe: "oliven(z)
  807. PRINT :PRINT "  Sklaven ("skp%(1)"Sesterzen )"
  808. PRINT "  Teppiche ("tep%(1)"Sesterzen )"
  809. PRINT "  Wein ("wep%(1)"Sesterzen )"
  810. PRINT "  Oliven ("olp%(1)"Sesterzen )"
  811. PRINT "  Ende"
  812. CALL Mouseklick(7,11)
  813. c=VAL(a$):IF c=5 THEN WINDOW CLOSE 5:GOTO warte1
  814. LOCATE 14,1:PRINT "Wieviel : ";:CALL Eingabe(12,14,"0123456789",9)
  815. IF c=1 THEN
  816.  sklaven(z)=sklaven(z)+VAL(a$):ver(z)=ver(z)-VAL(a$)*skp%(1)
  817. ELSEIF c=2 THEN
  818.  teppiche(z)=teppiche(z)+VAL(a$):ver(z)=ver(z)-VAL(a$)*tep%(1)
  819. ELSEIF c=3 THEN
  820.  wein(z)=wein(z)+VAL(a$):ver(z)=ver(z)-wep%(1)*VAL(a$)
  821. ELSEIF c=4 THEN
  822.  oliven(z)=oliven(z)+VAL(a$):ver(z)=ver(z)-olp%(1)*VAL(a$)
  823. END IF
  824. GOTO handel2
  825. schiffe:
  826. WINDOW 5,"          ^ ^ Schiffe ^ ^",(0,36)-(310,140),0,1
  827. schiffe2:
  828. CLS:PRINT "Vermögen : "ver(z)" Sesterzen"
  829. PRINT "Schiffe  : "schiffe%(z)
  830. PRINT :PRINT "  Schiffe kaufen ("ss%"Sesterzen )"
  831. PRINT "  Schiffe verkaufen ("ss%-200"Sesterzen)"
  832. PRINT "  Schiffe schicken"
  833. PRINT "  Preisliste sehen (25000 Sesterzen )"
  834. PRINT "  Ende"
  835. CALL Mouseklick(4,8)
  836. c=VAL(a$):IF c=5 THEN WINDOW CLOSE 5:GOTO warte1
  837. ON c GOTO skaufen,sverkaufen,sschicken,ssehen
  838. skaufen:
  839. LOCATE 10,1:PRINT "Wieviel : ";:CALL Eingabe(12,10,"0123456789",3)
  840. IF VAL(a$)+schiffe%(z)+me>999 THEN 
  841.  LOCATE 11,1:PRINT "Sie können nur 999 Schiffe kaufen."
  842.  GOSUB Maus:GOTO schiffe2
  843. END IF
  844. schiffe%(z)=schiffe%(z)+VAL(a$):ver(z)=ver(z)-VAL(a$)*ss%
  845. GOTO schiffe2
  846. sverkaufen:
  847. LOCATE 10,1:PRINT "Wieviel : ";:CALL Eingabe(12,10,"0123456789",3)
  848. IF VAL(a$)>schiffe%(z) THEN
  849.  LOCATE 11,1:PRINT "So viele Schiffe haben Sie nicht."
  850.  GOSUB Maus:GOTO schiffe2
  851. END IF
  852. schiffe%(z)=schiffe%(z)-VAL(a$):ver(z)=ver(z)+(ss%-200)*VAL(a$)
  853. GOTO schiffe2
  854. ssehen:
  855. CLS
  856. PRINT "         Athen      Alexandria Karthago"
  857. PRINT "Sklaven:";:
  858. FOR a=2 TO 4
  859.  LOCATE 2,10+(a-2)*11:PRINT skp%(a);:
  860. NEXT a
  861. PRINT :PRINT "Teppiche:";:
  862. FOR a=2 TO 4
  863.  LOCATE 3,10+(a-2)*11:PRINT tep%(a);:
  864. NEXT a
  865. PRINT :PRINT "Wein:";:
  866. FOR a=2 TO 4
  867.  LOCATE 4,10+(a-2)*11:PRINT wep%(a);:
  868. NEXT a
  869. PRINT :PRINT "Oliven:";:
  870. FOR a=2 TO 4
  871.  LOCATE 5,10+(a-2)*11:PRINT olp%(a);:
  872. NEXT a
  873. ver(z)=ver(z)-25000:GOSUB Maus
  874. GOTO schiffe2
  875. sschicken:
  876. CLS
  877. PRINT :PRINT "  Athen ("heuer%(1)" Sesterzen Heuer )"
  878. PRINT "  Alexandria ("heuer%(2)" Sesterzen Heuer )"
  879. PRINT "  Karthago ("heuer%(3)" Sesterzen Heuer )"
  880. PRINT "  Ende"
  881. CALL Mouseklick(2,5)
  882. c=VAL(a$):IF c=4 THEN schiffe2
  883. sschicken2:
  884. CLS
  885. IF me=100 THEN
  886.  PRINT :PRINT "Sie können nur 100 Schiffe schicken !"
  887.  GOSUB Maus
  888.  GOTO schiffe2
  889. END IF
  890. PRINT :PRINT TAB (4)" Sklaven ("sklaven(z)" )"
  891. PRINT TAB(4)" Teppiche ("teppiche(z)" )"
  892. PRINT TAB(4)" Wein ("wein(z)" )"
  893. PRINT TAB(4)" Oliven ("oliven(z)" )"
  894. IF asch%>0 THEN PRINT TAB(4)" Letzten Handel wiederholen": :ELSE PRINT 
  895. PRINT TAB(4)" Ende"
  896. IF asch%>0 THEN CALL Mouseklick(2,7): :ELSE CALL Mouseklick (2,7)
  897. IF a$="5" AND asch%>0 THEN
  898.  LOCATE 8,1:PRINT "Wie oft :";:CALL Eingabe (14,8,"0123456789",2)
  899.  b=VAL (a$)
  900.  IF b=0 THEN sschicken2
  901.  IF me+b>100 THEN
  902.   PRINT :PRINT "Sie dürfen nur 100 Schiffe schicken.":GOSUB Maus
  903.   GOTO sschicken2
  904.  ELSEIF schiffe%(z)-b<0 THEN
  905.   PRINT :PRINT "So viele Schiffe haben Sie nicht !!":GOSUB Maus
  906.   GOTO sschicken2
  907.  END IF
  908.  IF asch%=1 THEN
  909.   IF sklaven(z)-(b*anzl%)<0 THEN
  910.    PRINT :PRINT "So viele Sklaven haben Sie nicht !!":GOSUB Maus
  911.    GOTO sschicken2
  912.   END IF
  913.   FOR a=1 TO b
  914.    sklaven(z)=sklaven(z)-anzl%:me=me+1:unter(me)=skp%(c+1)*anzl%
  915.    schiffe%(z)=schiffe%(z)-1:ver(z)=ver(z)-heuer%(c)
  916.   NEXT a
  917.  ELSEIF asch%=2 THEN
  918.   IF teppiche(z)-(b*anzl%)<0 THEN
  919.    PRINT :PRINT "So viele Teppiche haben Sie nicht !!":GOSUB Maus
  920.    GOTO sschicken2
  921.   END IF
  922.   FOR a=1 TO b
  923.    teppiche(z)=teppiche(z)-anzl%:me=me+1:unter(me)=tep%(c+1)*anzl%
  924.    ver(z)=ver(z)-heuer%(c):schiffe%(z)=schiffe%(z)-1
  925.   NEXT a
  926.  ELSEIF asch%=3 THEN
  927.   IF wein(z)-(b*anzl%)<0 THEN
  928.    PRINT :PRINT "So viele Weinkrüge haben Sie nicht !!":GOSUB Maus
  929.    GOTO sschicken2
  930.   END IF
  931.   FOR a=1 TO b
  932.    wein(z)=wein(z)-anzl%:me=me+1:unter(me)=wep%(c+1)*anzl%
  933.    ver(z)=ver(z)-heuer%(c):schiffe%(z)=schiffe%(z)-1
  934.   NEXT a
  935.  ELSEIF asch%=4 THEN
  936.   IF oliven(z)-(b*anzl%)<0 THEN
  937.    PRINT :PRINT "So viele Olivenkörbe haben Sie nicht !!":GOSUB Maus
  938.    GOTO sschicken2
  939.   END IF
  940.   FOR a=1 TO b
  941.    oliven(z)=oliven(z)-anzl%:me=me+1:unter(me)=olp%(c+1)*anzl%
  942.    ver(z)=ver(z)-heuer%(c):schiffe%(z)=schiffe%(z)-1
  943.   NEXT a
  944.  END IF
  945.  GOSUB Maus
  946.  GOTO sschicken2
  947. END IF
  948. b=VAL(a$):IF b>4 THEN sschicken
  949. LOCATE 8,1:PRINT "Wieviel : ";:CALL Eingabe(12,8,"0123456789",3)
  950. IF schiffe%(z)=0 THEN
  951.  PRINT :PRINT "Sie besitzen keine Schiffe mehr."
  952.  GOSUB Maus
  953.  GOTO schiffe2
  954. ELSEIF VAL(a$)=0 THEN
  955.  GOTO sschicken
  956. END IF
  957. IF b=1 THEN
  958.  IF sklaven(z)-VAL(a$)<0 THEN sschicken2
  959.  IF VAL(a$)>100 THEN
  960.   PRINT :PRINT "Sie dürfen nur 100 Sklaven verschicken."
  961.   GOSUB Maus
  962.   GOTO sschicken2
  963.  END IF
  964.  sklaven(z)=sklaven(z)-VAL(a$)
  965.  asch%=1:anzl%=VAL(a$)
  966.  schiffe%(z)=schiffe%(z)-1:me=me+1:unter(me)=skp%(c+1)*VAL(a$)
  967.  ver(z)=ver(z)-heuer%(c)
  968. ELSEIF b=2 THEN
  969.  IF teppiche(z)-VAL(a$)<0 THEN sschicken2
  970.  IF VAL(a$)>200 THEN
  971.   PRINT :PRINT "Sie dürfen nur 200 Teppiche verschicken."
  972.   GOSUB Maus
  973.   GOTO sschicken2
  974.  END IF
  975.  teppiche(z)=teppiche(z)-VAL(a$)
  976.  asch%=2:anzl%=VAL(a$)
  977.  schiffe%(z)=schiffe%(z)-1:me=me+1:unter(me)=tep%(c+1)*VAL(a$)
  978.  ver(z)=ver(z)-heuer%(c)
  979. ELSEIF b=3 THEN
  980.  IF wein(z)-VAL(a$)<0 THEN sschicken2
  981.  IF VAL(a$)>500 THEN
  982.   PRINT :PRINT "Sie dürfen nur 500 Weinkrüge verschicken."
  983.   GOSUB Maus
  984.   GOTO sschicken2
  985.  END IF
  986.  wein(z)=wein(z)-VAL(a$)
  987.  asch%=3:anzl%=VAL(a$)
  988.  schiffe%(z)=schiffe%(z)-1:me=me+1:unter(me)=wep%(c+1)*VAL(a$)
  989.  ver(z)=ver(z)-heuer%(c)
  990. ELSEIF b=4 THEN
  991.  IF oliven(z)-VAL(a$)<0 THEN sschicken2
  992.  IF VAL(a$)>500 THEN
  993.   PRINT :PRINT "Sie dürfen nur 500 Olivenkörbe verschicken."
  994.   GOSUB Maus
  995.   GOTO sschicken2
  996.  END IF
  997.  oliven(z)=oliven(z)-VAL(a$)
  998.  asch%=4:anzl%=VAL(a$)
  999.  schiffe%(z)=schiffe%(z)-1:me=me+1:unter(me)=olp%(c+1)*VAL(a$)
  1000.  ver(z)=ver(z)-heuer%(c)
  1001. END IF
  1002. GOTO sschicken2     
  1003. politik:
  1004. IF rang%(z)<4 THEN
  1005.  LOCATE 22,1:PRINT "Politik erst ab Präfekt möglich....";
  1006.  BEEP:GOSUB Maus
  1007.  LOCATE 22,1:PRINT SPACE$(35);:GOTO warte1
  1008. END IF
  1009. WINDOW 5,"       ? ? ? Politik ? ? ?",(0,34)-(310,160),0,1
  1010. politik2:
  1011. CLS
  1012. PRINT "Vermögen : "ver(z)" Sesterzen"
  1013. PRINT :PRINT TAB(4)" Reden halten ("rd%" Sesterzen )"
  1014. PRINT TAB(4)" Aufstand anzetteln"
  1015. PRINT TAB(4)" Ende"
  1016. CALL Mouseklick (3,5)
  1017. c=VAL(a$):IF c=3 THEN WINDOW CLOSE 5:GOTO warte1
  1018. IF c=1 THEN
  1019.  LOCATE 8,1:PRINT "Wie scharf greifen Sie die "
  1020.  PRINT " Regierung an ? "
  1021.  PRINT " (0-gar nicht,99-sehr stark)"
  1022.  CALL Eingabe (3,12,"0123456789",2)
  1023.  IF VAL(a$)/100<RND THEN
  1024.   PRINT :PRINT "Ihre Rede hatte Erfolg."
  1025.   punkte(z)=punkte(z)+VAL(a$)/50
  1026.  ELSE
  1027.   PRINT :PRINT "Ihre Rede endete in einem Eklat."
  1028.   punkte(z)=punkte(z)-VAL(a$)/50
  1029.   IF punkte(z)<0 THEN punkte(z)=0
  1030.  END IF
  1031.  GOSUB Maus
  1032.  ver(z)=ver(z)-rd%
  1033. ELSEIF c=2 THEN
  1034.  LOCATE 8,1:PRINT "Wirklich Aufstand anzetteln ?";:CALL Eingabe (31,8,"jJnN",1)
  1035.  IF UCASE$(a$)="N" THEN politik2
  1036.  a=INT (2*RND)+1
  1037.  b=punkte(z)-60:c=(volk%(z)+3*reiter%(z)+2*matrosen%(z)+5*katapulte%(z)+10*kschiffe%(z))
  1038.  c=c/2000
  1039.  IF c+b>40 AND a=1 THEN
  1040.   PRINT :PRINT "Gratuliere , Ihr Aufstand ist geglückt."
  1041.   PRINT "Der Senat hat bereits den neuen Cäsa-"
  1042.   PRINT "ren benannt."
  1043.   GOSUB cpruef:chronik%(z)=chronik%(z)+1
  1044.   chronik$(z,chronik%(z))="Im Jahre "+STR$(jahr%)+" gelang ein Aufstand unter "+na$(z)+"s Führung."
  1045.   IF volk%(z)+wegv%<29500 THEN volk%(z)=volk%(z)+INT(500*RND)
  1046.   IF reiter%(z)+wegr%<9875 THEN reiter%(z)=reiter%(z)+INT(125*RND)
  1047.   IF matrosen%(z)+wegm%<19750 THEN matrosen%(z)=matrosen%(z)+INT(250*RND)
  1048.   IF katapulte%(z)+wegk%<475 THEN katapulte%(z)=katapulte%(z)+INT(25*RND)
  1049.   IF kschiffe%(z)+wegs%<240 THEN kschiffe%(z)=kschiffe%(z)+INT(10*RND)
  1050.   ver(z)=ver(z)+INT(20000*RND)
  1051.   punkte(z)=punkte(z)+2
  1052.   GOSUB Maus
  1053.  ELSE
  1054.   PRINT :PRINT "Tut mir leid , Ihr Aufstand wurde 
  1055.   PRINT "blutig niedergeschlagen. Sie werden"
  1056.   PRINT "für 3 Jahre ins Gefängnis geworfen"
  1057.   PRINT "und zum Tribun degradiert."
  1058.   GOSUB cpruef:chronik%(z)=chronik%(z)+1
  1059.   chronik$(z,chronik%(z))="Im Jahre "+STR$(jahr%)+" mißlang ein Aufstand unter "+na$(z)+"s Führung."
  1060.   volk%(z)=volk%(z)-INT(volk%(z)*RND)
  1061.   reiter%(z)=reiter%(z)-INT(reiter%(z)*RND)
  1062.   matrosen%(z)=matrosen%(z)-INT(matrosen%(z)*RND)
  1063.   katapulte%(z)=katapulte%(z)-INT(katapulte%(z)*RND)
  1064.   kschiffe%(z)=kschiffe%(z)-INT(kschiffe%(z)*RND)
  1065.   gf%(z)=3
  1066.   punkte(z)=60:rang%(z)=3:ver(z)=ver(z)-INT(50000*RND)
  1067.   GOSUB Maus:WINDOW CLOSE 5:GOTO jahresende
  1068.  END IF
  1069. END IF
  1070. GOTO politik2  
  1071. wirtschaft:
  1072. WINDOW 5,"        ** Wirtschaft **",(0,34)-(310,150),0,1
  1073. wirtschaft2:
  1074. CLS
  1075. PRINT "Vermögen    : "ver(z)" Sesterzen"
  1076. PRINT "Steinbrüche : "stein%(z)
  1077. PRINT "Mühlen      : "muehle%(z)
  1078. PRINT "Märkte      : "maerkte%(z)
  1079. PRINT :PRINT TAB(4)" Steinbrüche ("st%" Sesterzen )"
  1080. PRINT TAB(4)" Mühlen ("mu%" Sesterzen )"
  1081. PRINT TAB(4)" Märkte ("mr%" Sesterzen )"
  1082. PRINT TAB (4)" Ende"
  1083. CALL Mouseklick(6,9)
  1084. c=VAL(a$):IF c=4 THEN WINDOW CLOSE 5:GOTO warte1
  1085. LOCATE 12,1:PRINT "Wieviel : ";:CALL Eingabe (12,12,"0123456789",3)
  1086. IF c=1 THEN
  1087.  IF stein%(z)+VAL(a$)>100 THEN
  1088.   PRINT :PRINT "Sie können nur 100 Steinbrüche bauen.":GOSUB Maus:GOTO wirtschaft2
  1089.  END IF
  1090.  stein%(z)=stein%(z)+VAL(a$)
  1091.  ver(z)=ver(z)-VAL(a$)*st%
  1092. ELSEIF c=2 THEN
  1093.  IF muehle%(z)+VAL(a$)>200 THEN
  1094.   PRINT :PRINT "Sie können nur 200 Mühlen bauen.":GOSUB Maus:GOTO wirtschaft2
  1095.  END IF
  1096.  muehle%(z)=muehle%(z)+VAL(a$)
  1097.  ver(z)=ver(z)-VAL(a$)*mu%
  1098. ELSEIF c=3 THEN
  1099.  IF maerkte%(z)+VAL(a$)>300 THEN
  1100.   PRINT :PRINT "Sie können nur 300 Märkte bauen.":GOSUB Maus:GOTO wirtschaft2
  1101.  END IF
  1102.  maerkte%(z)=maerkte%(z)+VAL(a$) 
  1103.  ver(z)=ver(z)-VAL(a$)*mr%
  1104. END IF
  1105. GOTO wirtschaft2
  1106. armee:
  1107. IF rang%(z)<3 THEN
  1108.  LOCATE 22,1:PRINT "Armee erst ab Tribun möglich...";
  1109.  FOR a=1 TO 200:NEXT a:BEEP:GOSUB Maus:LOCATE 22,1:PRINT SPACE$(31);
  1110.  GOTO warte1
  1111. END IF
  1112. WINDOW 5,"      / /  Armee  \ \",(0,34)-(310,120),0,1
  1113. armee2:
  1114. CLS
  1115. PRINT "Vermögen : "ver(z)" Sesterzen"
  1116. PRINT :PRINT TAB(6)" Soldaten werben"
  1117. PRINT  TAB(6)" Kriegsmaterial kaufen"
  1118. PRINT  TAB(6)" Übersicht"
  1119. PRINT  TAB(6)" Ende"
  1120. CALL Mouseklick (3,6)
  1121. IF a$="4" THEN WINDOW CLOSE 5:GOTO warte1
  1122. ON VAL(a$) GOTO soldaten,material,sicht
  1123. sicht:
  1124. CLS
  1125. PRINT "Vermögen      : "ver(z) " Sesterzen"
  1126. PRINT "Reiter        : "reiter%(z)
  1127. PRINT "Fußvolk       : "volk%(z)
  1128. PRINT "Matrosen      : "matrosen%(z)
  1129. PRINT "Katapulte     : "katapulte%(z)
  1130. PRINT "Kriegsschiffe : "kschiffe%(z) 
  1131. GOSUB Maus:CLS:GOTO armee2
  1132. material:
  1133. CLS:PRINT "Vermögen : "ver(z)" Sesterzen"
  1134. PRINT :PRINT TAB(4)" Katapulte ("ka%" Sesterzen )"
  1135. PRINT TAB(4)" Kriegsschiffe ("ks%" Sesterzen  )"
  1136. PRINT TAB(4)" Ende"
  1137. CALL Mouseklick (3,5)
  1138. c=VAL(a$):IF c=3 THEN sicht
  1139. LOCATE 7,1:PRINT "Wieviel : ";:CALL Eingabe (12,7,"0123456789",7)
  1140. PRINT 
  1141. IF c=1 THEN
  1142.  IF katapulte%(z)+wegk%+VAL(a$)>750 THEN
  1143.   PRINT "Sie dürfen nur 750 Katapulte kaufen."
  1144.   GOSUB Maus
  1145.   GOTO material
  1146.  END IF
  1147.  katapulte%(z)=katapulte%(z)+VAL(a$)
  1148.  ver(z)=ver(z)-VAL(a$)*ka%
  1149. ELSE
  1150.  IF kschiffe%(z)+wegs%+VAL(a$)>250 THEN
  1151.   PRINT "Sie dürfen nur 250 Schiffe kaufen."
  1152.   GOSUB Maus
  1153.   GOTO material
  1154.  END IF
  1155.  kschiffe%(z)=kschiffe%(z)+VAL(a$)
  1156.  ver(z)=ver(z)-VAL(a$)*ks%
  1157. END IF
  1158. GOTO material
  1159. soldaten:
  1160. CLS:PRINT "Vermögen : "ver(z)" Sesterzen"
  1161. PRINT :PRINT TAB(6)" Reiter ("re%" Sesterzen )"
  1162. PRINT TAB (6)" Fußvolk ("fu%" Sesterzen )"
  1163. PRINT TAB(6)" Matrosen ("ma%" Sesterzen )"
  1164. PRINT TAB(6)" Ende"
  1165. CALL Mouseklick (3,6)
  1166. c=VAL(a$):IF c=4 THEN sicht
  1167. LOCATE 8,1:PRINT "Wieviel :";:CALL Eingabe (12,8,"0123456789",7)
  1168. PRINT 
  1169. IF c=1 THEN
  1170.  IF reiter%(z)+VAL(a$)+wegr%>10000 THEN
  1171.   PRINT "Sie dürfen nur 10000 Reiter":PRINT " einstellen."
  1172.   GOSUB Maus
  1173.   GOTO soldaten
  1174.  END IF
  1175.  reiter%(z)=reiter%(z)+VAL(a$)
  1176.  ver(z)=ver(z)-VAL(a$)*re%
  1177. ELSEIF c=2 THEN
  1178.  IF volk%(z)+VAL(a$)+wegv%>30000 THEN
  1179.   PRINT "Sie dürfen nur 30000 Soldaten":PRINT " einstellen."
  1180.   GOSUB Maus
  1181.   GOTO soldaten
  1182.  END IF
  1183.  volk%(z)=volk%(z)+VAL(a$)
  1184.  ver(z)=ver(z)-VAL(a$)*fu%
  1185. ELSEIF c=3 THEN
  1186.  IF matrosen%(z)+VAL(a$)+wegm%>20000 THEN
  1187.   PRINT "Sie dürfen nur 20000 Matrosen":PRINT " einstellen."
  1188.   GOSUB Maus
  1189.   GOTO soldaten
  1190.  END IF
  1191.  matrosen%(z)=matrosen%(z)+VAL(a$)
  1192.  ver(z)=ver(z)-VAL(a$)*ma%
  1193. END IF
  1194. GOTO soldaten
  1195. zufall:
  1196. re%=INT(200*RND)+75
  1197. fu%=INT(100*RND)+35
  1198. ma%=INT(150*RND)+55
  1199. ka%=INT(1550*RND)+500
  1200. ks%=INT(15000*RND)+5000
  1201. st%=INT(4000*RND)+4000
  1202. mu%=INT(3000*RND)+2000
  1203. mr%=INT(1500*RND)+1000
  1204. rd%=INT(20000*RND)+10000
  1205. ss%=INT(1500*RND)+3500+jahr%*20
  1206. FOR a=1 TO 4
  1207.  skp%(a)=INT(60*RND)+145
  1208.  tep%(a)=INT(20*RND)+65
  1209.  wep%(a)=INT(10*RND)+15
  1210.  olp%(a)=INT(4*RND)+3
  1211.  heuer%(a)=INT(40*RND*jahr%)+300
  1212.  IF heuer%(a)<400 THEN heuer%(a)=heuer%(a)+400
  1213. NEXT a
  1214. RETURN
  1215. DATA 4,8
  1216. DATA *,*,*,#
  1217. DATA *,-,-,*,*,*,*,#
  1218. DATA *,-,-,-,-,-,-,*,*,*,*,*,#
  1219. DATA *,-,-,-,-,-,-,-,-,-,-,-,*,*,*,*,#
  1220. DATA *,-,-,-,-,-,-,-,-,-,-,-,-,-,-,*,#
  1221. DATA *,*,*,-,-,-,-,-,-,-,-,-,-,-,*,#
  1222. DATA -,-,*,*,*,-,-,-,-,*,*,*,-,-,*,*,#
  1223. DATA -,-,-,-,-,*,*,*,*,-,-,-,*,-,*,*,#
  1224. DATA -,-,-,-,-,-,-,-,*,*,*,-,*,-,*,#
  1225. DATA -,-,-,-,-,-,-,-,*,-,-,*,*,*,#
  1226. DATA -,-,-,-,-,-,-,-,-,*,*,*,#
  1227. DATA #
  1228. DATA #
  1229. DATA -,-,-,*,-,-,-,-,-,-,-,-,*,#
  1230. DATA -,-,-,-,*,-,-,-,-,-,-,*,#
  1231. DATA -,-,-,-,-,*,*,-,-,*,*,#
  1232. DATA -,-,-,-,-,-,-,*,*,#
  1233. DATA -,-,-,-,-,-,*,-,-,*,#,.
  1234. DATA 8,8
  1235. DATA -,-,-,-,-,*,*,#
  1236. DATA -,-,-,-,*,-,-,*,*,*,#
  1237. DATA -,-,-,*,-,-,-,-,*,#
  1238. DATA -,-,*,-,-,-,-,*,#
  1239. DATA -,*,-,-,-,-,*,*,#
  1240. DATA *,*,-,-,-,*,*,*,*,#
  1241. DATA -,-,*,-,*,-,-,*,*,*,#
  1242. DATA -,-,-,*,-,-,-,-,*,*,*,#
  1243. DATA -,-,-,-,-,-,-,-,-,*,*,*,#
  1244. DATA *,*,*,-,-,-,-,-,-,-,*,*,#
  1245. DATA -,*,#
  1246. DATA -,*,#,.
  1247. DATA 4,10
  1248. DATA *,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,#
  1249. DATA *,-,-,-,-,*,-,-,-,-,-,*,-,-,-,-,*,#
  1250. DATA *,-,-,-,-,*,-,-,-,-,-,*,-,-,-,-,*,#
  1251. DATA *,-,-,-,-,*,-,-,-,-,-,*,-,-,-,-,*,#
  1252. DATA *,-,-,-,-,*,-,-,-,-,-,*,-,-,-,-,*,#
  1253. DATA *,-,-,-,-,*,-,-,-,-,-,*,-,-,-,-,*,#
  1254. DATA *,-,-,-,-,*,-,-,-,-,-,*,-,-,-,-,*,#
  1255. DATA *,-,-,-,-,*,-,-,-,-,-,*,-,-,-,-,*,#
  1256. DATA *,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,#,.
  1257. DATA 4,6
  1258. DATA -,-,-,-,-,*,*,#
  1259. DATA -,-,-,-,-,*,-,*,*,#
  1260. DATA -,-,-,-,-,*,-,-,-,*,*,*,#
  1261. DATA -,-,-,-,-,*,-,-,-,-,-,-,*,*,#
  1262. DATA -,-,-,-,-,*,-,-,-,-,-,-,-,-,*,#
  1263. DATA -,-,-,-,-,-,*,*,*,-,-,-,-,-,*,#
  1264. DATA -,-,-,-,-,-,-,-,*,*,*,*,-,-,*,#
  1265. DATA -,-,-,-,-,-,-,-,*,*,-,-,*,*,#
  1266. DATA *,-,-,-,-,-,-,-,*,*,#
  1267. DATA *,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,#
  1268. DATA *,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,*,#
  1269. DATA -,*,-,-,-,-,-,-,-,-,-,-,-,-,-,-,*,#
  1270. DATA -,-,*,*,-,-,-,-,-,-,-,-,-,-,-,*,#
  1271. DATA -,-,-,-,*,*,*,-,-,-,-,-,-,*,*,#
  1272. DATA -,-,-,-,-,-,-,*,*,*,*,*,*,#,.
  1273. DATA 3,5
  1274. DATA -,-,-,*,*,#
  1275. DATA -,-,-,*,*,*,*,#
  1276. DATA -,-,-,*,*,*,-,-,-,-,*,*,*,*,*,*,*,*,#
  1277. DATA -,-,*,*,*,*,*,-,-,-,*,-,-,-,-,-,*,*,#
  1278. DATA -,*,*,*,*,*,*,*,-,-,*,*,*,*,*,*,*,*,#
  1279. DATA -,*,*,*,*,*,*,*,-,-,*,-,-,*,*,-,-,*,#
  1280. DATA -,*,*,*,*,*,*,*,-,-,*,*,*,*,*,*,*,*,#
  1281. DATA -,-,*,*,*,*,*,-,-,-,*,*,-,-,-,-,-,*,#
  1282. DATA -,-,-,*,*,*,-,-,-,-,*,*,*,*,*,*,*,*,#
  1283. DATA #,#,#
  1284. DATA -,-,*,-,-,-,-,-,-,-,-,-,-,-,-,-,*,#
  1285. DATA -,*,*,-,-,-,-,-,-,-,-,-,-,-,-,-,*,*,#
  1286. DATA *,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,#
  1287. DATA *,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,#
  1288. DATA -,*,*,-,-,-,-,-,-,-,-,-,-,-,-,-,*,*,#
  1289. DATA -,-,*,-,-,-,-,-,-,-,-,-,-,-,-,-,*,#,.
  1290. DATA 2,7
  1291. DATA -,*,*,#
  1292. DATA -,*,-,*,*,*,#
  1293. DATA -,-,-,*,-,-,*,*,*,*,#
  1294. DATA *,*,-,*,-,-,-,-,-,-,*,*,*,*,*,#
  1295. DATA *,*,-,*,-,-,-,-,-,-,-,-,-,-,-,*,*,*,*,#
  1296. DATA -,-,-,*,-,-,-,-,-,-,-,-,-,-,-,-,-,-,*,#
  1297. DATA *,*,-,*,*,*,-,-,-,-,-,-,-,-,-,-,-,*,#
  1298. DATA -,*,*,-,-,*,*,*,-,-,-,-,*,*,*,-,-,*,*,#
  1299. DATA -,*,-,-,-,-,-,-,*,*,*,*,-,-,-,*,-,*,*,#
  1300. DATA -,-,-,-,-,-,-,-,-,-,-,*,*,*,-,*,-,*,-,-,*,#
  1301. DATA -,-,-,-,-,-,-,-,-,-,-,*,-,-,*,*,*,-,-,*,*,*,#
  1302. DATA -,-,-,-,-,-,-,-,-,-,-,-,*,*,*,-,-,-,-,-,*,-,#
  1303. DATA #
  1304. DATA #
  1305. DATA -,-,-,-,-,-,*,-,-,-,-,-,-,-,-,*,#
  1306. DATA -,-,-,-,-,-,-,*,-,-,-,-,-,-,*,-,*,#
  1307. DATA -,-,-,-,-,*,-,-,*,*,-,-,*,*,-,-,-,*,#
  1308. DATA -,-,-,-,-,*,-,-,-,-,*,*,#
  1309. DATA -,-,-,-,-,-,-,-,-,*,-,-,*,#,.
  1310. DATA 3,4
  1311. DATA -,-,-,-,*,*,#
  1312. DATA -,-,-,*,-,-,*,*,#
  1313. DATA -,-,*,-,-,*,-,-,*,#
  1314. DATA -,*,-,-,*,-,*,-,-,*,#
  1315. DATA -,*,-,*,-,-,-,*,-,*,*,#
  1316. DATA -,*,*,-,-,-,-,-,*,-,-,*,#
  1317. DATA -,-,*,-,-,-,-,-,-,*,-,-,*,#
  1318. DATA -,-,-,*,-,-,-,-,-,-,*,-,*,#
  1319. DATA -,-,-,-,*,-,-,-,-,-,-,*,*,#
  1320. DATA -,-,-,-,-,*,-,-,-,-,*,*,#
  1321. DATA -,-,-,-,-,-,*,-,-,*,#
  1322. DATA -,-,-,-,-,-,-,*,*,#
  1323. DATA #,#,#
  1324. DATA -,-,*,-,-,-,*,-,-,*,-,*,-,-,*,-,-,*,*,#
  1325. DATA -,*,-,*,-,-,*,*,-,*,-,*,*,-,*,-,*,-,-,*,#
  1326. DATA *,*,*,*,*,-,*,-,*,*,-,*,-,*,*,-,*,-,-,*,#
  1327. DATA *,-,-,-,*,-,*,-,-,*,-,*,-,-,*,-,-,*,*,#.
  1328. DATA 4,6
  1329. DATA -,*,*,*,*,*,*,*,*,*,*,*,#
  1330. DATA -,*,-,-,-,-,-,-,-,-,-,*,#
  1331. DATA -,*,-,*,*,*,*,*,*,*,-,*,#
  1332. DATA -,*,-,*,-,-,-,-,-,*,-,*,#
  1333. DATA -,*,-,*,-,-,-,-,-,*,-,*,#
  1334. DATA -,*,-,*,*,*,*,*,*,*,-,*,#
  1335. DATA -,*,-,-,-,-,-,-,-,-,-,*,#
  1336. DATA -,*,*,*,*,*,*,*,*,*,*,*,#
  1337. DATA *,*,*,*,*,*,*,*,*,*,*,*,*,#
  1338. DATA *,-,-,-,-,-,-,*,*,*,-,-,*,#
  1339. DATA *,-,-,-,-,-,-,-,-,-,-,-,*,#
  1340. DATA *,*,*,*,*,*,*,*,*,*,*,*,*,#
  1341. DATA #,#,-,-,-,-,-,-,*,*,*,*,*,*,*,*,*,*,*,#
  1342. DATA -,-,-,-,-,-,*,*,*,*,*,*,*,*,*,*,*,#,.
  1343. DATA 0,1,0,0,0,0,1,0,0,0,0,1,1,1,.2,1,.8,.7
  1344. DATA .5,.5,.5,.9,.5,0,.7,.3,.8
  1345. cpruef:
  1346.  IF chronik%(z)=>50 THEN 
  1347.   chronik%(z)=1
  1348.   chronik$(z,1)="Er verfasste eine Sammlung seiner Erlebnisse im Jahre "+STR$(jahr%)
  1349.  END IF
  1350. RETURN 
  1351. Maus:
  1352.  Test=MOUSE(0):SLEEP:SLEEP:SLEEP:Test=MOUSE(0)
  1353. RETURN
  1354. SUB Mouseklick (smark%,emark%) STATIC
  1355.  SHARED a$
  1356.  a$=""
  1357.  mklwa:
  1358.  Test=MOUSE(0):SLEEP:SLEEP:SLEEP:Test=MOUSE(0)
  1359.  y=MOUSE(2):y=INT(y/8)+1
  1360.  IF y<smark% OR y>emark% THEN mklwa
  1361.  y=y-smark%+1
  1362.  a$=RIGHT$(STR$(y),1)
  1363.  merky%=CSRLIN:merkx%=POS(0) 
  1364.  LOCATE y+smark%-1,1:PRINT "*";
  1365.  LOCATE merky%,merkx%
  1366. END SUB
  1367. SUB Alles STATIC
  1368.  SHARED z$
  1369.  z$=":/.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZäöüßÄÖÜ1234567890 "
  1370. END SUB 
  1371. SUB Eingabe (xpos%,ypos%,aus$,laenge%) STATIC
  1372.  SHARED a$
  1373.  a$=""
  1374.  xpos%=xpos%*8-8:ypos%=ypos%*8
  1375.  einschleife:
  1376.  LINE (xpos%,ypos%)-(xpos%+8,ypos%),1
  1377.  pruef:
  1378.  b$=""
  1379.  WHILE b$="":b$=INKEY$:WEND
  1380.  IF b$=CHR$(8) AND a$><"" THEN
  1381.   LOCATE ypos%/8,xpos%/8
  1382.   PRINT " ";:a$=LEFT$(a$,LEN(a$)-1)
  1383.   LINE (xpos%,ypos%)-(xpos%+8,ypos%),0
  1384.   xpos%=xpos%-8:GOTO einschleife
  1385.  ELSEIF b$=CHR$(13) AND a$<>"" THEN
  1386.   LINE (xpos%,ypos%)-(xpos%+8,ypos%),0
  1387.   EXIT SUB
  1388.  ELSEIF INSTR(aus$,b$)=0 THEN
  1389.   GOTO pruef
  1390.  ELSEIF LEN(a$)<laenge% THEN
  1391.   LINE (xpos%,ypos%)-(xpos%+8,ypos%),0:a$=a$+b$:LOCATE (ypos%/8),(xpos%/8+1)
  1392.   PRINT b$;:xpos%=xpos%+8:GOTO einschleife
  1393.  END IF
  1394. GOTO pruef 
  1395. END SUB
  1396.  
  1397.  
  1398.  
  1399.